iT邦幫忙

2023 iThome 鐵人賽

DAY 6
0
Software Development

Zero to Ruby on Rails系列 第 6

Day 06 - Logical Evaluation and Flow Controller邏輯判斷和流程控制

  • 分享至 

  • xImage
  •  

在 Ruby 的世界裡,因為所有的東西都是物件,只有 nilfalse 是假的(false)其他都是真的(true)

倒裝句 if modifier

if age >= 20
  puts "2024準備選總統囉"
end

在 Ruby 中 一樣可以用英文倒裝句的方式把 if 放到後面,上面的寫法也可以這樣寫:

puts "2024準備投票選總統囉" if age >= 20

if 的影分身之術: unless

unless = if not反之if = unless not但是以程式碼的可讀性來說用 if 會比較直覺一點...

age = 20

unless age < 20
  puts "2024準備選總統囉"
end

# 倒裝句

puts "2024準備投票選總統囉" unless age < 20

puts "2024準備投票選總統囉" unless not age >= 20


二分法 if..else..

二分法有點類似非黑即白的概念,如果...不然就..沒有中間其他的選項,這種條件語句的結構可用於根據條件的真假來執行不同的程式碼區塊

age = 20

if age >= 20
  puts "可以參加投票選總統!"
else
  puts "不可以參加投票選總統!"
end

在上述的情況下,設立條件只有年紀大於等於20可以參加投票選總統,剩下的都不能。

三元運算子 Ternary Operator

三元運算子是一種簡潔的條件表達方式,可以在一行程式碼中實現簡單的條件選擇,使程式碼更簡潔。

剛剛示範的例子中,原本五行的程式碼可以用一行來簡化:

age = 20
puts age >= 20 ? "可以參加投票選總統!" : "不可以參加投票選總統!"

更多選擇 if .. elsif .. else..

這邊特別注意 elsif 中間沒有 e

grade = 85


if grade >= 90
  puts "優秀!你的成績是 A+。"
elsif grade >= 80
  puts "很不錯!你的成績是 A。"
elsif grade >= 70
  puts "不錯,你的成績是 B。"
elsif grade >= 60
  puts "及格,你的成績是 C。"
else
  puts "需要加油,你的成績不及格。"
end

case..when..

也可以用case..when..來寫,事實上這樣的寫法其實只是 if .. elsif .. else 的語法糖衣,看個人喜好去選擇寫法。

grade = 85

case grade
when 90..100
  puts "優秀!你的成績是 A+。"
when 80..89
  puts "很不錯!你的成績是 A。"
when 70..79
  puts "不錯,你的成績是 B。"
when 60..69
  puts "及格,你的成績是 C。"
else
  puts "需要加油,你的成績不及格。"
end

預告

Day 07 預計來介紹方法,我們明天見!


上一篇
Day 05 - Hash and Symbol 雜湊和符號
下一篇
Day 07 - Method 方法
系列文
Zero to Ruby on Rails30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言